
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>promise.all方法</title>
</head>
<body>
    Promise.all()方法
    <!-- 
        并发就是指在同一个时间点执行多个不同的任务。
        该方法用于将多个 Promise 实例，包装成一个新的 Promise 实例
        Promise.all()的特点：
            1)、如果all()方法中的所有Promise实例都执行成功则返回的结果为数组，数组中的元素与all()方法中的Promise实例一 一对应；
            2)、如果all()方法中有一个Promise实例执行失败则返回的是这个Promise实例的失败结果；
            3)、如果all()方法中的所有Promise实例都执行失败则返回的是最先失败的那个Promise实例的结果；
     -->

    <script>

        // 创建了一个promise实例1
        // let p1 = new Promise((resolve,reject)=>{
        //     resolve("p1成功了")
        // })
        // let p2 = new Promise((resolve,reject)=>{
        //     resolve("p2成功了")
        // })
        // let p3 = new Promise((resolve,reject)=>{
        //     reject("p3失败了")
        // })
        // let p4 = new Promise((resolve,reject)=>{
        //     resolve("p4成功了")
        // })

        // Promise.all([p1,p2,p3,p4]).then(res=>{
        //     console.log(res);
            
        // }).catch(err=>{
        //     console.log("失败了"+err);
            
        // })
        // let p1 = new Promise((resolve,reject)=>{
        //     reject("p1失败了")
        // })
        // let p2 = new Promise((resolve,reject)=>{
        //     reject("p2失败了")
        // })
        // let p3 = new Promise((resolve,reject)=>{
        //     reject("p3失败了")
        // })
        // let p4 = new Promise((resolve,reject)=>{
        //     reject("p4失败了")
        // })

        // Promise.all([p1,p2,p3,p4]).then(res=>{
        //     console.log(res);
            
        // }).catch(err=>{
        //     console.log("失败了"+err);
            
        // })


        let p1 = new Promise((resolve,reject)=>{
            resolve("p1成功了")
        })
        let p2 = new Promise((resolve,reject)=>{
            resolve("p2成功了")
        })
        let p3 = new Promise((resolve,reject)=>{
            reject("p3失败了")
        })
        let p4 = new Promise((resolve,reject)=>{
            resolve("p4成功了")
        })

        Promise.allSettled([p1,p2,p3,p4]).then(res=>{
            console.log(res);
            
        }).catch(err=>{
            console.log("失败了"+err);
            
        })

    </script>
</body>
</html>